home *** CD-ROM | disk | FTP | other *** search
Wrap
package com.extensibility.xa; import com.extensibility.app.BaseApplication; import com.extensibility.app.BaseDocument; import com.extensibility.app.BaseInfo; import com.extensibility.app.BaseWindow; import com.extensibility.app.BasicDialog; import com.extensibility.app.Desktop; import com.extensibility.app.DialogFactory; import com.extensibility.app.DocumentPreferences; import com.extensibility.app.EditWindow; import com.extensibility.app.UI; import com.extensibility.app.WindowUndoManager; import com.extensibility.plugin.api.URIVersionedAccess; import com.extensibility.util.Debug; import com.extensibility.util.FilteredEnumerator; import com.extensibility.util.XASet; import com.extensibility.xml.AttributeDeclaration; import com.extensibility.xml.AttributeGroup; import com.extensibility.xml.AttributeGroupMember; import com.extensibility.xml.AuditTrail; import com.extensibility.xml.BaseDeclaration; import com.extensibility.xml.CommentList; import com.extensibility.xml.ContentModelOwner; import com.extensibility.xml.ContentModelTerm; import com.extensibility.xml.DTDParser; import com.extensibility.xml.DTDUtilities; import com.extensibility.xml.DataTypeDeclaration; import com.extensibility.xml.DeclarationChangeEvent; import com.extensibility.xml.ElementDeclaration; import com.extensibility.xml.EntityDeclaration; import com.extensibility.xml.ExternalPEDeclaration; import com.extensibility.xml.ExternalSubset; import com.extensibility.xml.ExtraMetaDataUIIntf; import com.extensibility.xml.InternalPEDeclaration; import com.extensibility.xml.ParameterEntityDeclaration; import com.extensibility.xml.ParserException; import com.extensibility.xml.ProcessingInstruction; import com.extensibility.xml.Schema; import com.extensibility.xml.SchemaFlattened; import com.extensibility.xml.SchemaFlavorIntf; import com.extensibility.xml.SchemaIntf; import com.extensibility.xml.SchemaUtilities; import com.extensibility.xml.SchemaValidator; import com.extensibility.xml.URI; import com.extensibility.xml.dt.DataTypeIntf; import java.awt.Component; import java.awt.Dialog; import java.awt.event.ActionEvent; import java.io.File; import java.io.IOException; import java.io.Writer; import java.util.Enumeration; import java.util.Vector; import javax.swing.UIManager; import javax.swing.event.EventListenerList; public class SchemaDoc extends BaseDocument { public static final String XA_DOC_PREFS = "XA_DOC_PREFS"; public static final String XA_VER_HIST = "XA_VERSION_HISTORY"; ModuleRegistry moduleRegistry; SchemaIntf schema; boolean muteDeclChanges; boolean parsedFromFile; SchemaValidator validator; Thread validatorThread; BaseDeclaration focusedDecl; URI focusedURI; EventListenerList listenerList; SchemaDocEvent documentEvent; SchemaDocChangeListener declChangeListener; SchemaDocListenerImpl docListener; public SchemaDoc() { this(getDefaultSchemaFlavor()); } public SchemaDoc(String var1) { this.muteDeclChanges = false; this.parsedFromFile = true; this.listenerList = new EventListenerList(); this.documentEvent = new SchemaDocEvent(this, (BaseDeclaration)null); this.declChangeListener = new SchemaDocChangeListener(this); this.docListener = new SchemaDocListenerImpl(this); if (Authority.isBizTalkOnly()) { var1 = SchemaIntf.BIZ_FLAVOR_NAME; } if (var1 == null || !Schema.flavorExists(var1)) { var1 = SchemaIntf.DTD_FLAVOR_NAME; } this.schema = new Schema(((BaseDocument)this).getURI(), var1); this.init(); super.undoManager = new WindowUndoManager(this); } public SchemaDoc(SchemaIntf var1) { super(var1.getURI()); this.muteDeclChanges = false; this.parsedFromFile = true; this.listenerList = new EventListenerList(); this.documentEvent = new SchemaDocEvent(this, (BaseDeclaration)null); this.declChangeListener = new SchemaDocChangeListener(this); this.docListener = new SchemaDocListenerImpl(this); this.schema = var1; this.init(); super.undoManager = new WindowUndoManager(this); } public SchemaDoc(URI var1) { super(var1); this.muteDeclChanges = false; this.parsedFromFile = true; this.listenerList = new EventListenerList(); this.documentEvent = new SchemaDocEvent(this, (BaseDeclaration)null); this.declChangeListener = new SchemaDocChangeListener(this); this.docListener = new SchemaDocListenerImpl(this); String var2 = SchemaUtilities.getFlavor(var1, true); this.schema = new Schema(var1, var2 == null ? SchemaIntf.DTD_FLAVOR_NAME : var2); this.init(); super.undoManager = new WindowUndoManager(this); } public static String getDefaultSchemaFlavor() { String var0 = ((XAPreferences)BaseApplication.getPreferences()).getDefaultSchemaFlavor(); if (Authority.isBizTalkOnly()) { var0 = SchemaIntf.BIZ_FLAVOR_NAME; } if (var0 == null || !Schema.flavorExists(var0)) { var0 = SchemaIntf.DTD_FLAVOR_NAME; } return var0; } public void addDocumentListener(SchemaDocListener var1) { this.listenerList.add(Class.forName("com.extensibility.xa.SchemaDocListener"), var1); } private void addModule(Vector var1, ExternalSubset var2) { var1.addElement(var2); Enumeration var3 = var2.children(); while(var3.hasMoreElements()) { this.addModule(var1, (ExternalSubset)var3.nextElement()); } } public void addVersionInfo(URI var1, VersionInfo var2) { ProcessingInstruction var3 = new ProcessingInstruction("XA_VERSION_HISTORY", var2.toSource()); ((BaseDeclaration)var3).setURI(var1); this.insertDeclaration(var3, (BaseDeclaration)null); } public void setParsedFromFile(boolean var1) { this.parsedFromFile = var1; } public boolean isParsedFromFile() { return this.parsedFromFile; } public void autoCreateMissingElements(ElementDeclaration var1) { boolean var2 = this.isSupported(Class.forName("com.extensibility.xml.NamespaceDeclaration")); if (var2) { this.autoCreateMissingPrefixes(var1); } String var3 = var1.getFirstMissingTerm(this.getSchema(), var2); if (var3 != null && XADialogFactory.askAutoCreate((Component)null, var3)) { boolean var4 = this.getSchema().getFlavor().getFlavorName().equals("osc"); var1.visitTerms(new 1(var2, var4, this), true); ((BaseDeclaration)var1).fireChangeEvent(20, (Object)null); } } public void autoCreateMissingPrefixes(ElementDeclaration var1) { boolean var2 = this.isSupported(Class.forName("com.extensibility.xml.NamespaceDeclaration")); if (var2) { String var3 = var1.getFirstMissingPrefix(this.getSchema()); if (var3 != null && XADialogFactory.askAutoCreatePrefix((Component)null, var3)) { var1.visitTerms(new 2(this), true); ((BaseDeclaration)var1).fireChangeEvent(20, (Object)null); } } } public void checkAttrList(String var1) throws ParserException { Vector var2 = DTDUtilities.parseNameList(var1, ','); Enumeration var3 = var2.elements(); while(var3.hasMoreElements()) { String var4 = (String)var3.nextElement(); if (DTDUtilities.isPEName(var4) && this.getNamedAttributeGroup(var4) == null) { var4 = DTDUtilities.convertPEName(var4, false); InternalPEDeclaration var5 = (InternalPEDeclaration)this.schema.getNamedDeclaration(var4, Class.forName("com.extensibility.xml.InternalPEDeclaration")); if (var5 == null || !var5.getMayBeAttrGroup()) { throw new ParserException(209, var4); } } } } public void checkContentModel(String var1, String var2) throws ParserException { if (!DTDParser.isWhiteString(var2)) { if (var2.length() != 0 && !DTDParser.isWhiteString(var2)) { var2 = DTDUtilities.convertPEReferences(var2, true).trim(); boolean var3 = var2.equals("EMPTY") || var2.equals("ANY"); this.schema.checkContentModel(var1, var2, var3); } } } public String getContentModelAsString(ContentModelOwner var1) { return this.schema.getContentModelAsString(var1); } public void checkAttributeGroup(String var1, String var2) throws ParserException { this.schema.checkAttributeGroup(var1, var2); } public void checkForErrors(boolean var1) { if (var1) { this.validator.addAll(); } else { this.validator.checkAll(); } } public void close() { this.validator.exit(); this.schema = null; super.close(); } public boolean commitPendingEdits(boolean var1) { Enumeration var2 = Desktop.getWindowsOfDocument(this); while(var2.hasMoreElements()) { EditWindow var3 = (EditWindow)var2.nextElement(); if (!var3.commitPendingEdits(var1)) { return false; } } return true; } public int countErrors() { int var1 = 0; Enumeration var2 = this.schema.getDeclarations(); while(var2.hasMoreElements()) { BaseDeclaration var3 = (BaseDeclaration)var2.nextElement(); if (var3.hasErrors()) { ++var1; } } return var1; } public boolean updateAttributeGroup(AttributeDeclaration.Owner var1, String var2) throws ParserException { Vector var3 = var1.getAttributeGroup().getMembers(); boolean var4 = this.getSchema().updateAttributeGroup(var1, var2); Vector var5 = var1.getAttributeGroup().getMembers(); Enumeration var6 = var3.elements(); while(var6.hasMoreElements()) { Object var7 = var6.nextElement(); if (var7 instanceof AttributeDeclaration) { this.fireRemoveEvent((AttributeDeclaration)var7); } } var6 = var5.elements(); while(var6.hasMoreElements()) { Object var9 = var6.nextElement(); if (var9 instanceof AttributeDeclaration) { this.fireInsertEvent((AttributeDeclaration)var9, (BaseDeclaration)null); } } return var4; } public AttributeGroup createAttributeGroup(InternalPEDeclaration var1) throws ParserException { int var2 = this.schema.getCount(); boolean var3 = this.schema.createAttributeGroup(var1); Debug.assert(var3, "failed without throwing parserException"); if (this.schema.getCount() != var2) { this.fireChangedEvent((BaseDeclaration)null); } return this.getNamedAttributeGroup(((BaseDeclaration)var1).getName()); } public void ensureURI(BaseDeclaration var1) { if (var1.getURI() == null) { var1.setURI(this.getFocusedURI(true)); } } public void fireChangedEvent(BaseDeclaration var1) { Object[] var2 = this.listenerList.getListenerList(); this.documentEvent.set((BaseDeclaration)null, var1); for(int var3 = var2.length - 2; var3 >= 0; var3 -= 2) { if (var2[var3] == Class.forName("com.extensibility.xa.SchemaDocListener")) { ((SchemaDocListener)var2[var3 + 1]).declarationListChanged(this.documentEvent); } } } protected void fireDeclChangedEvent(DeclarationChangeEvent var1) { if (!this.muteDeclChanges) { Object[] var2 = this.listenerList.getListenerList(); this.documentEvent.set(var1.getDeclaration()); for(int var3 = var2.length - 2; var3 >= 0; var3 -= 2) { if (var2[var3] == Class.forName("com.extensibility.xa.SchemaDocListener")) { ((SchemaDocListener)var2[var3 + 1]).declarationChanged(this.documentEvent, var1); } } } } public void fireFlavorChangedEvent() { Object[] var1 = this.listenerList.getListenerList(); this.documentEvent.set((BaseDeclaration)null); for(int var2 = var1.length - 2; var2 >= 0; var2 -= 2) { if (var1[var2] == Class.forName("com.extensibility.xa.SchemaDocListener")) { ((SchemaDocListener)var1[var2 + 1]).flavorChanged(this.documentEvent); } } } public void fireInsertEvent(BaseDeclaration var1, BaseDeclaration var2) { Object[] var3 = this.listenerList.getListenerList(); this.documentEvent.set(var1, var2); for(int var4 = var3.length - 2; var4 >= 0; var4 -= 2) { if (var3[var4] == Class.forName("com.extensibility.xa.SchemaDocListener")) { ((SchemaDocListener)var3[var4 + 1]).declarationInserted(this.documentEvent); } } } public void fireRemoveEvent(BaseDeclaration var1) { Object[] var2 = this.listenerList.getListenerList(); this.documentEvent.set(var1); for(int var3 = var2.length - 2; var3 >= 0; var3 -= 2) { if (var2[var3] == Class.forName("com.extensibility.xa.SchemaDocListener")) { ((SchemaDocListener)var2[var3 + 1]).declarationRemoved(this.documentEvent); } } } protected void fireReorderedEvent(BaseDeclaration var1) { Object[] var2 = this.listenerList.getListenerList(); this.documentEvent.set(var1, (BaseDeclaration)null); for(int var3 = var2.length - 2; var3 >= 0; var3 -= 2) { if (var2[var3] == Class.forName("com.extensibility.xa.SchemaDocListener")) { ((SchemaDocListener)var2[var3 + 1]).declarationListReordered(this.documentEvent); } } } public ElementDeclaration[] getAllowedElements(ElementDeclaration var1) { return this.schema.getAllowedElements(var1); } public Enumeration getAttrGroupPENames() { return new 3(this); } public Enumeration getAttributeDeclarations() { return new FilteredEnumerator(this.getDeclarations(), Class.forName("com.extensibility.xml.AttributeDeclaration")); } public Enumeration getAttributeNames() { XASet var1 = new XASet(); Enumeration var2 = this.getDeclarations(Class.forName("com.extensibility.xml.AttributeDeclaration")); while(var2.hasMoreElements()) { AttributeDeclaration var3 = (AttributeDeclaration)var2.nextElement(); if (var3.getOwner() instanceof ElementDeclaration || var3.isGlobal()) { var1.addToSet(((BaseDeclaration)var3).getName()); } } return ((Vector)var1).elements(); } AuditTrail getAuditTrail(URI var1) { return this.moduleRegistry.getAuditTrail(var1); } public boolean getChangeLogging() { URI var1 = ((BaseDocument)this).getURI(); return this.getPreferences(var1).getChangeLogging(); } public String getClassName() { return "com.extensibility.xa.SchemaDoc"; } public CommentList getCommentList(URI var1) { return this.schema.getCommentList(var1); } public Enumeration getComments() { return this.schema.getComments(); } public Enumeration getConstraintPENames() { return new 4(this); } public Enumeration getContentGroupPENames() { return new 5(this); } public int getCount() { return this.schema.getCount(); } public int getCount(Class var1) { int var2 = 0; for(Enumeration var3 = this.getDeclarations(var1); var3.hasMoreElements(); ++var2) { var3.nextElement(); } return var2; } public BaseDeclaration getDeclarationBefore(BaseDeclaration var1) { return this.schema.getDeclarationBefore(var1); } public BaseDeclaration getDeclarationAfter(BaseDeclaration var1) { return this.schema.getDeclarationAfter(var1); } public Enumeration getDeclarations() { return this.schema.getDeclarations(); } public Enumeration getDeclarations(URI var1, Class var2) { return this.schema.getDeclarations(var1, var2); } public Enumeration getDeclarations(URI var1, boolean var2) { return this.schema.getDeclarations(var1, var2); } public Enumeration getDeclarations(Class var1) { return this.schema.getDeclarations(var1); } public Enumeration getDeclNames(Class var1, boolean var2) { Enumeration var3 = this.getDeclarations(var1); Vector var4 = new Vector(); while(var3.hasMoreElements()) { BaseDeclaration var5 = (BaseDeclaration)var3.nextElement(); if (var2) { var4.addElement(var5.getName()); } else if (this.isEditable(var5.getURI())) { var4.addElement(var5.getName()); } } return var4.elements(); } public int getElementCount() { return this.schema.getElementCount(); } public Enumeration getElementDeclarations() { return this.schema.getElementDeclarations(); } public Enumeration getForeignDeclarations(Class var1) { return this.schema.getForeignDeclarations(var1); } public final BaseDeclaration getFocusedDecl() { return this.focusedDecl; } public final URI getFocusedURI(boolean var1) { URI var2 = this.focusedURI == null ? ((BaseDocument)this).getURI() : this.focusedURI; return !this.isEditable(var2) ? ((BaseDocument)this).getURI() : var2; } public Enumeration getGeneralEntityDeclarations() { return new FilteredEnumerator(this.getDeclarations(), Class.forName("com.extensibility.xml.GeneralEntityDeclaration")); } private ProcessingInstruction getInstruction(URI var1, String var2) { Enumeration var3 = this.getDeclarations(var1, Class.forName("com.extensibility.xml.ProcessingInstruction")); while(var3.hasMoreElements()) { ProcessingInstruction var4 = (ProcessingInstruction)var3.nextElement(); if (var4.getTarget().equals(var2)) { return var4; } } return null; } private AttributeDeclaration getLikelyAttribute(String var1) { if (DTDUtilities.isPEName(var1)) { return null; } else { AttributeDeclaration var2 = this.schema.getNamedAttribute((String)null, var1); if (var2 != null) { return var2; } else { Enumeration var3 = this.getDeclarations(Class.forName("com.extensibility.xml.AttributeDeclaration")); while(var3.hasMoreElements()) { var2 = (AttributeDeclaration)var3.nextElement(); if (((BaseDeclaration)var2).getName().equals(var1)) { return var2; } } return null; } } } public Vector getModuleList() { ExternalSubset var1 = this.getStructure(); Vector var2 = new Vector(); this.addModule(var2, var1); return var2; } public String getName() { String var1 = super.getName(); if (!((BaseDocument)this).getURI().hasPersistence()) { var1 = String.valueOf(String.valueOf(var1).concat(String.valueOf("."))).concat(String.valueOf(this.getSchema().getFlavorName())); } return var1; } public AttributeGroup getNamedAttributeGroup(String var1) { var1 = DTDUtilities.convertPEName(var1, false); ParameterEntityDeclaration var2 = (ParameterEntityDeclaration)this.schema.getNamedDeclaration(var1, Class.forName("com.extensibility.xml.ParameterEntityDeclaration")); return var2 == null ? null : var2.getAttributeGroup(); } public AttributeDeclaration.Owner getNamedAttributeOwner(String var1) { if (DTDUtilities.isPEName(var1)) { AttributeGroup var2 = this.getNamedAttributeGroup(var1); return var2 == null ? null : var2.getOwner(); } else { return this.getNamedElement(var1); } } public ContentModelTerm getNamedContentModelGroup(String var1) { var1 = DTDUtilities.convertPEName(var1, false); ParameterEntityDeclaration var2 = (ParameterEntityDeclaration)this.schema.getNamedDeclaration(var1, Class.forName("com.extensibility.xml.ParameterEntityDeclaration")); return var2 == null ? null : var2.getContentModel(); } public ContentModelOwner getNamedContentModelOwner(String var1) { return this.schema.getNamedContentModelOwner(var1); } public BaseDeclaration getNamedDeclaration(String var1, Class var2) { return var2 == Class.forName("com.extensibility.xa.AggregateAttributeDecl") ? this.schema.getNamedDeclaration(var1, Class.forName("com.extensibility.xml.AttributeDeclaration")) : this.schema.getNamedDeclaration(var1, var2); } public String getNameDefault() { URI var1 = ((BaseDocument)this).getURI(); DocumentPreferences var2 = this.getPreferences(var1); String var3 = var2.getNameDefault(); return var3 != null && var3 != "" ? var3 : System.getProperty("user.name"); } public ElementDeclaration getNamedElement(String var1) { return this.schema.getNamedElement(var1); } public BaseDeclaration getNextDecl(BaseDeclaration var1) { int var2 = this.schema.indexOf(var1) + 1; return var2 < this.schema.getCount() ? this.schema.getIndDeclaration(var2) : null; } BaseDeclaration getNextDeclaration(BaseDeclaration var1) { return this.schema.getNextDeclaration(var1); } public Enumeration getNotationDeclarations() { return new FilteredEnumerator(this.getDeclarations(), Class.forName("com.extensibility.xml.NotationDeclaration")); } public Enumeration getParameterEntityDeclarations() { return new FilteredEnumerator(this.getDeclarations(), Class.forName("com.extensibility.xml.ParameterEntityDeclaration")); } public Vector getParseErrors() { return this.schema.getParseErrors(); } public String getPendingChangeComment(BaseDeclaration var1) { if (this.getChangeLogging()) { AuditTrail var2 = this.getAuditTrail(var1.getURI()); return var2 == null ? null : var2.getChange(var1, UI.getString("audit.insert"), UI.getString("audit.change"), UI.getString("audit.remove")); } else { return null; } } public ExtraMetaDataUIIntf getExtraMetaDataUI() { return this.getSchema().getFlavor() instanceof ExtraMetaDataUIIntf ? (ExtraMetaDataUIIntf)this.getSchema().getFlavor() : null; } public DocumentPreferences getPreferences(URI var1) { DocumentPreferences var2 = this.moduleRegistry.getPreferences(var1); if (var2 != null) { return var2; } else { ProcessingInstruction var3 = this.getInstruction(var1, "XA_DOC_PREFS"); if (var3 != null) { var2 = DocumentPreferences.createDocumentPreferences(var3.getInstruction()); } if (var2 == null) { var2 = new DocumentPreferences(); } this.moduleRegistry.setPreferences(var1, var2); return var2; } } public BaseDeclaration getPrevDecl(BaseDeclaration var1) { int var2 = this.schema.indexOf(var1) - 1; return var2 >= 0 ? this.schema.getIndDeclaration(var2) : null; } public Enumeration getProcessingInstructions() { return new FilteredEnumerator(this.getDeclarations(), Class.forName("com.extensibility.xml.ProcessingInstruction")); } public boolean getPromptForVersionInfo() { URI var1 = ((BaseDocument)this).getURI(); return this.getPreferences(var1).getPromptForVersionInfo(); } public ExternalPEDeclaration getReferent(ExternalSubset var1) { Enumeration var2 = this.getDeclarations(); while(var2.hasMoreElements()) { BaseDeclaration var3 = (BaseDeclaration)var2.nextElement(); if (var3 instanceof ExternalPEDeclaration && ((ExternalPEDeclaration)var3).getSystemID().equals(var1.getSystemURI())) { return (ExternalPEDeclaration)var3; } } Debug.assert(false, "Referent not found."); return null; } public void export(String var1, URI var2) throws IOException { Writer var3 = var2.createWriter(); SchemaUtilities.getWriter(new SchemaFlattened(this.getSchema()), var1).writeDocument(var3); var3.close(); } public boolean saveAs(ActionEvent var1) { File var2 = this.getSaveAsFile(var1); if (var2 == null) { return false; } else { URI var3 = new URI(var2); String var4 = SchemaUtilities.getFlavor(var3, false); Vector var5 = ((Schema)this.getSchema()).checkConversion(var4); if (var5.size() > 0) { CompositeSchemaWindow var6 = (CompositeSchemaWindow)Desktop.getFrontDocWindow(); BasicDialog var7 = new BasicDialog(var6, UI.getString("dialog.confirm.title"), UIManager.getIcon("OptionPane.questionIcon"), UI.getString("conversion.check.dialog.msg"), new String[0], new String[0], new String[]{UI.getString("conversion.check.dialog.view"), UI.getString("conversion.check.dialog.save"), UI.getString("dialog.cancel")}); ((Dialog)var7).show(); int var8 = var7.getDismissalButton(); if (var8 != 1) { if (var8 == 0) { Debug.assert(((BaseWindow)var6).getDocument() == this); var6.showConversionErrors(var5, var3, var4); } return false; } } this.setURI(var3); this.touch(); this.save(var1); return true; } } protected String[] getSaveAsExtensions() { if (Authority.isBizTalkOnly()) { return new String[]{SchemaIntf.BIZ_FLAVOR_NAME}; } else if (this.getModuleList().size() > 1) { return new String[]{this.getSchema().getFlavorName()}; } else { String[] var1 = SchemaUtilities.getExtensions(); String[] var2 = new String[var1.length]; System.arraycopy(var1, 0, var2, 0, var1.length); int var3; for(var3 = 0; var3 < var2.length; ++var3) { if (var2[var3].equals(this.schema.getFlavorName())) { String var4 = var2[0]; var2[0] = var2[var3]; var2[var3] = var4; break; } } Debug.assert(var3 < var2.length, String.valueOf("Unknown flavor: ").concat(String.valueOf(this.schema.getFlavorName()))); return var2; } } protected File getSaveAsFile(ActionEvent var1) { String[] var2 = this.getSaveAsExtensions(); String var3 = UI.getString("dialog.title.save.as", UI.getFileTypeName(this.schema.getFlavorName())); String var4 = null; if (this.schema.getFlavorName().equals("xams")) { var4 = XAUI.getFlavorsDirectory().getPath(); } File var5 = DialogFactory.askNewFile(Desktop.getDialogParent(var1), var2, var3, var4); if (var5 != null && Authority.isBizTalkOnly()) { String var6 = var5.getPath().substring(var5.getPath().lastIndexOf(46) + 1); if (!SchemaUtilities.compatibleFlavor(this.getSchema().getFlavor(), new URI(var5), false)) { DialogFactory.stop(Desktop.getDialogParent(var1), UI.getString("stop.only.biztalk")); var5 = this.getSaveAsFile(var1); } } if (var5 != null && this.getModuleList().size() > 1) { String var7 = var5.getPath().substring(var5.getPath().lastIndexOf(46) + 1); if (!SchemaUtilities.compatibleFlavor(this.getSchema().getFlavor(), new URI(var5), false)) { DialogFactory.stop(Desktop.getDialogParent(var1), UI.getString("stop.only.same.flavor")); var5 = this.getSaveAsFile(var1); } } return var5; } protected String[] getSaveChangesName() { Vector var1 = this.moduleRegistry.getTouchedURIs(); String[] var2 = new String[var1.size()]; for(int var3 = 0; var3 < var1.size(); ++var3) { URI var4 = (URI)var1.elementAt(var3); var2[var3] = var4.equals(((BaseDocument)this).getURI()) ? this.getName() : var4.getShortName(); } return var2; } public SchemaIntf getSchema() { return this.schema; } public ExternalSubset getStructure() { return this.schema.getStructure(); } public ExternalSubset getSubset(URI var1) { return this.getStructure().findParent(var1); } public Enumeration getTextPENames() { return !this.isSupported(Class.forName("com.extensibility.xml.InternalPEDeclaration")) ? null : new 6(this); } public String getUniqueAttrName(AttributeDeclaration var1) { String var2 = new String(((BaseDeclaration)var1).getName()); if (this.getNamedDeclaration(var2, Class.forName("com.extensibility.xml.AttributeDeclaration")) == null) { return var2; } else { int var3 = 1; String var4 = var2; boolean var5 = true; do { String var6 = new String(var4); AttributeDeclaration.Owner var7 = var1.getOwner(); FilteredEnumerator var8 = new FilteredEnumerator(this.getDeclarations(Class.forName("com.extensibility.xml.AttributeDeclaration")), new 7(var6, var7, (SchemaDoc)null)); if (var8.hasMoreElements()) { var4 = String.valueOf(String.valueOf(var2).concat(String.valueOf("."))).concat(String.valueOf(var3++)); } else { var5 = false; } } while(var5); return var4; } } public String getUniqueName(String var1, Class var2) { if (var2 == Class.forName("com.extensibility.xml.AttributeDeclaration")) { return var1; } else if (this.getNamedDeclaration(var1, var2) == null) { return var1; } else { int var3 = 1; String var4; do { var4 = String.valueOf(String.valueOf(var1).concat(String.valueOf("."))).concat(String.valueOf(var3++)); } while(this.getNamedDeclaration(var4, var2) != null); return var4; } } public Enumeration getUsedBy(BaseDeclaration var1) { return (new Vector()).elements(); } public Enumeration getUsedBy(ElementDeclaration var1) { String var2 = ((BaseDeclaration)var1).getName(); return new FilteredEnumerator(this.getDeclarations(), new 8(var2, (SchemaDoc)null)); } public Enumeration getUsedBy(InternalPEDeclaration var1) { return new FilteredEnumerator(this.getDeclarations(), new 9(var1, (SchemaDoc)null)); } public String getVersionInfoAsString(URI var1) { StringBuffer var2 = new StringBuffer(); Enumeration var3 = this.getDeclarations(var1, Class.forName("com.extensibility.xml.ProcessingInstruction")); while(var3.hasMoreElements()) { ProcessingInstruction var4 = (ProcessingInstruction)var3.nextElement(); if (var4.getTarget().equals("XA_VERSION_HISTORY")) { VersionInfo var5 = VersionInfo.createVersionInfo(var4.getInstruction()); if (var5 != null) { var2.append(var5.toString()); var2.append(VersionInfo.SEPARATOR); } } } return var2.toString(); } public BaseDeclaration importURI(URI var1, BaseDeclaration var2, SchemaFlavorIntf var3) throws Exception { int var4 = this.getCount(); int var5 = var2 == null ? var4 : this.schema.indexOf(var2); if (var3 == null) { var3 = this.schema.getFlavor(); } var3.parse(var1, var1, var5, (Object)null); ExternalSubset var6 = this.getSubset(var1); if (var6 != null) { this.setupRegistry(var6); } this.updateURI(var1, ((BaseDocument)this).getURI()); if (this.getCount() == var4) { return null; } else { BaseDeclaration var7 = this.schema.getIndDeclaration(var5); if (this.getCount() == var4 + 1) { this.fireInsertEvent(var7, var2); } else { this.fireChangedEvent(var7); } return var7; } } private void init() { if (this.schema.getFlavorName().equals(SchemaIntf.SOX2_FLAVOR_NAME)) { BaseApplication.getApplication(); String var1 = BaseApplication.getPreferences().getSchemaPath(); BaseApplication.getApplication(); String var2 = (new File(BaseApplication.getHomePath(), "sox")).getAbsolutePath(); if (var1 == null) { this.schema.setSchemaPath(var2); } else { var1 = String.valueOf(String.valueOf(var1).concat(String.valueOf(System.getProperty("path.separator")))).concat(String.valueOf(var2)); this.schema.setSchemaPath(var1); } } URI var4 = ((BaseDocument)this).getURI(); this.moduleRegistry = new ModuleRegistry(); this.moduleRegistry.addModule(var4); this.moduleRegistry.setEditable(var4, !var4.isReadOnly(true) || !var4.hasPersistence()); this.validator = new SchemaValidator(this.schema); this.validatorThread = new Thread(this.validator, String.valueOf("validator for ").concat(String.valueOf(this.getName()))); this.validatorThread.start(); this.addDocumentListener(this.docListener); this.schema.setModuleURIResolver(new 10(this)); this.fireChangedEvent((BaseDeclaration)null); } public void insertDeclaration(AttributeDeclaration var1, BaseDeclaration var2, AttributeDeclaration.Owner var3) { this.ensureURI(var1); if (!this.schema.isValidPosition(var1, var2)) { DialogFactory.stop((Component)null, UI.getString("stop.bad.insert.pos")); } else { this.schema.insertDeclaration(var1, var2, var3); this.touch((BaseDeclaration)var1); this.fireInsertEvent(var1, var2); } } public void insertDeclaration(BaseDeclaration var1, BaseDeclaration var2) { this.ensureURI(var1); if (var1 instanceof AggregateAttributeDecl) { this.insertDeclarationAgg((AggregateAttributeDecl)var1, var2); } else if (!this.schema.isValidPosition(var1, var2)) { DialogFactory.stop((Component)null, UI.getString("stop.bad.insert.pos")); } else { this.schema.insertDeclaration(var1, var2); this.touch(var1); Debug.assert(!(var1 instanceof ExternalSubset), "ExternalSubsets should be inserted in a different method."); this.fireInsertEvent(var1, var2); } } public BaseDeclaration insertDeclaration(BaseDeclaration var1, BaseDeclaration var2, Boolean var3, Boolean var4, SchemaDoc var5) throws Exception { Object var6 = null; String var14; if (var1 instanceof AttributeDeclaration) { var14 = this.getUniqueAttrName((AttributeDeclaration)var1); } else { var14 = this.getUniqueName(var1.getName(), var1.getClass()); } boolean var7 = var14.equals(var1.getName()); Vector var8 = var1.getPrerequisites(var5.getSchema()); for(int var9 = 0; var9 < var8.size(); ++var9) { BaseDeclaration var10 = (BaseDeclaration)var8.elementAt(var9); if (this.getNamedDeclaration(var10.getName(), var10.getClass()) == null) { if (var10.getURI().equals(var1.getURI())) { if (var3 != null && var3 || XADialogFactory.askImportDecl(var1, var10)) { this.insertDeclaration(var10, var2, var3, var4, var5); } } else if (var4 != null && var4 || XADialogFactory.askImportSubset(var1, var10)) { this.insertDeclaration(var5.getSubset(var10.getURI()), (BaseDeclaration)null, var3, var4, var5); } } } BaseDeclaration var15 = var1.clone(var5.getSchema(), this.getSchema(), ((BaseDocument)this).getURI()); this.insertDeclaration(var15, var2, var14); if (var1 instanceof AttributeDeclaration.Owner) { Enumeration var11 = ((AttributeDeclaration.Owner)var1).getOwnedAttributes(); while(var11.hasMoreElements()) { AttributeDeclaration var12 = (AttributeDeclaration)var11.nextElement(); AttributeDeclaration var13 = (AttributeDeclaration)this.insertDeclaration(var12, var2, var3, var4, var5); if (!var7) { this.setDeclarationOwner(var13, var14); } } } if (var15 == null) { return null; } else { if (!var7) { this.schema.setDeclarationName(var15, var14, false); } this.touch(var15); return var15; } } public void insertDeclaration(BaseDeclaration var1, BaseDeclaration var2, String var3) { this.ensureURI(var1); if (!this.schema.isValidPosition(var1, var2)) { DialogFactory.stop((Component)null, UI.getString("stop.bad.insert.pos")); } else { this.schema.insertDeclaration(var1, var2, var3); this.fireInsertEvent(var1, var2); } } private void insertDeclarationAgg(AggregateAttributeDecl var1, BaseDeclaration var2) { Debug.assert(var2 == null, "beforeDecl not appropriate for aggAttr."); Enumeration var3 = var1.getAttributes(); AttributeDeclaration var4 = null; while(var3.hasMoreElements()) { AttributeDeclaration var5 = (AttributeDeclaration)var3.nextElement(); if (!this.schema.isValidPosition(var5, var2)) { DialogFactory.stop((Component)null, UI.getString("stop.bad.insert.pos")); return; } var4 = var4 == null ? var5 : null; if (this.schema.indexOf(var5) == -1) { this.schema.insertDeclaration(var5, (BaseDeclaration)null); } else { var4 = null; } } if (var4 != null) { this.fireInsertEvent(var4, (BaseDeclaration)null); } else { this.fireChangedEvent(var4); } } public int insertSubset(ExternalPEDeclaration var1) throws IOException { try { int var2 = this.schema.insertSubset(var1); this.fireChangedEvent(var1); return var2; } catch (IOException var4) { this.fireChangedEvent(var1); throw var4; } } public final boolean isEditable(BaseDeclaration var1) { return this.isEditable(var1.getURI()); } public final boolean isEditable(URI var1) { return var1 == null ? true : this.moduleRegistry.isEditable(var1); } public boolean isEmpty() { if (this.getCount() == 0) { return true; } else if (this.getCount() > 1) { return false; } else { BaseDeclaration var1 = (BaseDeclaration)this.getDeclarations().nextElement(); if (!(var1 instanceof ProcessingInstruction)) { return false; } else { return ((ProcessingInstruction)var1).getTarget().equals("xml"); } } } public boolean isTouched() { return this.moduleRegistry.isTouched(); } public final boolean isTouched(URI var1) { return this.moduleRegistry.isTouched(var1); } public boolean lockModule(URI var1, int var2) { if (!this.commitPendingEdits(true)) { return false; } else if (!this.isTouched(var1)) { this.setEditable(var1, false); return true; } else { if (var2 == -1) { var2 = DialogFactory.saveChanges((Component)null, new String[]{var1.getShortName()}); } if (var2 == 2) { return false; } else if (var2 == 0) { if (this.save((ActionEvent)null, var1)) { var1 = ((BaseDocument)this).getURI(); this.moduleRegistry.setTouched(var1, false); this.setEditable(var1, false); return true; } else { return false; } } else if (var2 == 1) { if (this.refreshModule(var1)) { this.setTouched(var1, false); this.setEditable(var1, false); return true; } else { DialogFactory.stop((Component)null, "Unable to reload module"); return false; } } else { return false; } } } void moveDeclaration(BaseDeclaration var1, BaseDeclaration var2) { this.touch(var1); this.schema.moveDeclaration(var1, var2); this.touch(var1); this.fireReorderedEvent(var1); } private void parse(URI var1, boolean var2) throws Exception { this.validatorThread.suspend(); this.schema.parse(var1, this.schema.getCount(), new Boolean(var2)); this.setupRegistry(this.getStructure()); this.validatorThread.resume(); } public void parse(boolean var1) throws Exception { Debug.assert(this.schema.getCount() == 0, "parse should only be used when schema is empty"); this.parse(((BaseDocument)this).getURI(), var1); this.fireChangedEvent((BaseDeclaration)null); } boolean refreshModule(URI var1) { ExternalSubset var2 = this.getSubset(var1); if (var2 == null) { return false; } else if (!var1.equals(((BaseDocument)this).getURI())) { ExternalPEDeclaration var3 = (ExternalPEDeclaration)this.getNamedDeclaration(((BaseDeclaration)var2).getName(), Class.forName("com.extensibility.xml.ExternalPEDeclaration")); Debug.assert(var3 != null, String.valueOf("external pe ref not found for subset: ").concat(String.valueOf(((BaseDeclaration)var2).getName()))); if (var3 == null) { return false; } else { this.removeSubset(var2); try { this.insertSubset(var3); } catch (IOException var5) { DialogFactory.caution((Component)null, UI.getString("caution.uri.update.error", ((Throwable)var5).toString())); } return true; } } else { return false; } } public void removeDeclaration(BaseDeclaration var1) { this.touch(var1); if (!(var1 instanceof AggregateAttributeDecl)) { this.schema.removeDeclaration(var1); this.fireRemoveEvent(var1); } else { AggregateAttributeDecl var2 = (AggregateAttributeDecl)var1; Enumeration var3 = var2.getAttributes(); while(var3.hasMoreElements()) { this.removeDeclaration((BaseDeclaration)var3.nextElement()); } } } public void removeDocumentListener(SchemaDocListener var1) { this.listenerList.remove(Class.forName("com.extensibility.xa.SchemaDocListener"), var1); } public void removeSubset(ExternalSubset var1) { this.schema.removeSubset(var1); this.fireChangedEvent(var1); } public void reparse(URI var1, String var2) throws Exception { URI var3 = URI.makeStringURI(var2); var3 = var3.makeRelative(var1); if (var1.equals(((BaseDocument)this).getURI())) { this.schema.clearAllParseErrors(); this.schema.removeAllDeclarations(); this.schema.getFlavor().parse(var3, var1, this.schema.getCount(), new Boolean(false)); this.schema.doSecondPassValidation(var3); this.setupRegistry(this.getSubset(var1)); } else { ExternalSubset var4 = this.getSubset(var1); ExternalPEDeclaration var5 = (ExternalPEDeclaration)this.getNamedDeclaration(((BaseDeclaration)var4).getName(), Class.forName("com.extensibility.xml.ExternalPEDeclaration")); this.schema.removeSubset(var4); ((EntityDeclaration)var5).setSystemID(var3); this.schema.insertSubset(var5); ((EntityDeclaration)var5).setSystemID(var1); var4 = this.getSubset(var3); var4.setSystemURI(var1); this.updateURI(var3, var1); this.setupRegistry(var4); } this.moduleRegistry.setPreferences(var1, (DocumentPreferences)null); this.fireChangedEvent((BaseDeclaration)null); } public boolean save(ActionEvent var1) { if (!((BaseDocument)this).isReadOnly() && !((BaseDocument)this).getURI().isEmpty()) { if (Authority.isBizTalkOnly() && !this.getSchema().getFlavorName().equals(SchemaIntf.BIZ_FLAVOR_NAME)) { return this.saveAs(var1); } else { Vector var2 = this.moduleRegistry.getTouchedURIs(); for(int var3 = 0; var3 < var2.size(); ++var3) { URI var4 = (URI)var2.elementAt(var3); if (this.getPromptForVersionInfo()) { BaseWindow var5 = (BaseWindow)Desktop.getWindowsOfDocument(this).nextElement(); VersionInfoDialog var6 = new VersionInfoDialog(var5, this.getNameDefault(), ""); ((Dialog)var6).show(); if (var6.getVersionInfo() != null) { this.addVersionInfo(var4, var6.getVersionInfo()); } } if (this.getChangeLogging()) { this.getAuditTrail(var4).logChanges(this.getDeclarations(var4, true), UI.getString("audit.insert"), UI.getString("audit.change"), UI.getString("audit.remove")); } this.save(var1, var4); boolean var7 = false; if (false) { return false; } this.getAuditTrail(var4).setup(this.schema.getDeclarations(var4, true)); } return true; } } else { return this.saveAs(var1); } } public boolean save(ActionEvent var1, URI var2) { if (!this.isTouched(var2)) { return true; } else if (var2.isEmpty()) { return this.saveAs(var1); } else if (var2.isReadOnly()) { DialogFactory.stop(Desktop.getDialogParent(var1), UI.getString("stop.uri.is.ro", var2.toSource())); return this.saveAs(var1); } else { try { Writer var3 = var2.createWriter(); this.write(var3, var2); var3.close(); } catch (Exception var5) { DialogFactory.showException((Component)null, 103, var5, var2.getShortName()); boolean var4 = false; return var4; } this.setTouched(var2, false); BaseApplication.getApplication().saveNotify(var2, this); this.schema.clearAllParseErrors(); if (this.schema.getFlavorName().equals("xams")) { ((Authority)BaseApplication.getApplication()).addFlavors(); } return true; } } public void saveNotify(URI var1) { if (!var1.equals(((BaseDocument)this).getURI())) { this.refreshModule(var1); } } public void setChangeLogging(boolean var1) { URI var2 = ((BaseDocument)this).getURI(); DocumentPreferences var3 = this.getPreferences(var2); var3.setChangeLogging(var1); this.updatePreferences(var2, var3); } public void setComments(URI var1, Vector var2, String var3) { CommentList var4 = this.getCommentList(var1); if (var4 == null) { this.schema.setComments(var1, var2); } else { var4.updateComments(var2, var3); } this.fireChangedEvent((BaseDeclaration)null); } public void setDeclarationName(BaseDeclaration var1, String var2) { this.touch(var1); String var3 = var1.getName(); this.schema.setDeclarationName(var1, var2, true); var1.fireChangeEvent(1, var3); if (var1 instanceof ExternalPEDeclaration) { ExternalSubset var4 = (ExternalSubset)this.getNamedDeclaration(var2, Class.forName("com.extensibility.xml.ExternalSubset")); if (var4 != null) { ((BaseDeclaration)var4).fireChangeEvent(1, var3); } } } public void setDeclarationOwner(AggregateAttributeDecl var1, String var2) { Enumeration var3 = var1.getAttributes(); while(var3.hasMoreElements()) { AttributeDeclaration var4 = (AttributeDeclaration)var3.nextElement(); this.setDeclarationOwner(var4, var2); } } public void setDeclarationOwner(AttributeDeclaration var1, AttributeDeclaration.Owner var2) { this.touch((BaseDeclaration)var1); AttributeDeclaration.Owner var3 = var1.getOwner(); this.schema.setDeclarationOwner(var1, var2); this.fireReorderedEvent(var1); } public void setDeclarationOwner(AttributeDeclaration var1, String var2) { AttributeDeclaration.Owner var3 = this.getNamedAttributeOwner(var2); if (var3 != null) { this.setDeclarationOwner(var1, var3); } else { this.touch((BaseDeclaration)var1); this.schema.setDeclarationOwner(var1, var2); this.fireReorderedEvent(var1); } } public void setDeclarationURI(BaseDeclaration var1, URI var2, BaseDeclaration var3) { if (var1 instanceof ExternalPEDeclaration) { ExternalPEDeclaration var4 = (ExternalPEDeclaration)var1; if (var2.equals(((EntityDeclaration)var4).getSystemID())) { DialogFactory.stop((Component)null, UI.getString("stop.move.xped.to.xs")); return; } } var1.setURI(var2); this.moveDeclaration(var1, var3); } private void setEditable(URI var1, boolean var2) { Debug.assert(var2 || !this.isTouched(var1), "unable to turn editability off."); this.moduleRegistry.setEditable(var1, var2); } public void setFocusedDecl(BaseDeclaration var1) { if (var1 != null) { this.focusedURI = var1.getURI(); } this.focusedDecl = var1; } public boolean isSupported(String var1) { return this.schema.isSupported(var1); } public boolean isSupported(Class var1) { return this.schema.isSupported(var1); } public DataTypeDeclaration getNamedDataType(String var1) { return this.schema.getNamedDataType(var1); } public DataTypeIntf getNamedDataTypeIntf(String var1) { return this.schema.getNamedDataTypeIntf(var1); } public void setMuteDeclChanges(boolean var1) { this.muteDeclChanges = var1; } public void setNameDefault(String var1) { URI var2 = ((BaseDocument)this).getURI(); DocumentPreferences var3 = this.getPreferences(var2); var3.setNameDefault(var1); this.updatePreferences(var2, var3); } public void setPromptForVersionInfo(boolean var1) { URI var2 = ((BaseDocument)this).getURI(); DocumentPreferences var3 = this.getPreferences(var2); var3.setPromptForVersionInfo(var1); this.updatePreferences(var2, var3); } public void setTouched(URI var1, boolean var2) { if (var2) { this.touch(var1); } else { this.moduleRegistry.setTouched(var1, var2); } } private void setupRegistry(ExternalSubset var1) { URI var2 = var1.getSystemURI(); this.moduleRegistry.setup(var2, this.getDeclarations(var2, true)); Enumeration var3 = var1.children(); while(var3.hasMoreElements()) { this.setupRegistry((ExternalSubset)var3.nextElement()); } } public void setURI(URI var1) { String var2 = var1.getShortName().substring(var1.getShortName().lastIndexOf(46) + 1); if (!SchemaUtilities.sameFlavor(this.getSchema().getFlavor(), var1, false)) { boolean var3 = this.schema.setFlavor(var2); if (var3) { this.fireFlavorChangedEvent(); } } URI var6 = ((BaseDocument)this).getURI(); this.updateURI(var6, var1); super.setURI(var1); Enumeration var4 = Desktop.getWindowsOfDocument(this); while(var4.hasMoreElements()) { BaseWindow var5 = (BaseWindow)var4.nextElement(); if (var5 instanceof SchemaWin) { ((SchemaWin)var5).uriUpdateNotify(var6, var1); } } } public void touch() { super.touch(); this.touch(((BaseDocument)this).getURI()); } public void touch(BaseDeclaration var1) { this.moduleRegistry.touch(var1.getURI()); super.touch(); } public void touch(URI var1) { this.moduleRegistry.touch(var1); super.touch(); } public boolean unlockModule(URI var1) { Enumeration var2 = Desktop.getDocuments(); while(var2.hasMoreElements()) { BaseDocument var3 = (BaseDocument)var2.nextElement(); if (var3 instanceof SchemaDoc && var3 != this && ((SchemaDoc)var3).isEditable(var1)) { DialogFactory.stop((Component)null, UI.getString("stop.editing.uri.elsewhere", var1.getShortName())); return false; } } this.setEditable(var1, true); return true; } public void updateAttributeList(AttributeDeclaration.Owner var1, String var2) throws ParserException { Vector var3; if (var2.indexOf(",") >= 0) { var3 = DTDUtilities.parseNameList(var2, ','); } else if (var2.indexOf("|") > 0) { var3 = DTDUtilities.parseNameList(var2, '|'); } else { var3 = DTDUtilities.parseNameList(var2, ' '); } Vector var4 = new Vector(); for(int var5 = 0; var5 < var3.size(); ++var5) { String var6 = (String)var3.elementAt(var5); Object var7 = var1.getAttributeOrGroup(var6); if (var7 == null && DTDUtilities.isPEName(var6)) { var7 = this.getNamedAttributeGroup(var6); if (var7 == null) { var6 = DTDUtilities.convertPEName(var6, false); InternalPEDeclaration var8 = (InternalPEDeclaration)this.schema.getNamedDeclaration(var6, Class.forName("com.extensibility.xml.InternalPEDeclaration")); Debug.assert(var8 != null && var8.getMayBeAttrGroup(), "inelligible pe... should have been caught by cell validation"); var7 = this.createAttributeGroup(var8); var1.add((AttributeGroupMember)var7); Debug.assert(var7 != null, "should have either made it or thrown an exception before now"); } } if (var7 == null) { var7 = this.getLikelyAttribute(var6); if (var7 == null && this.isSupported("GESTALT_FORBID_LOCAL_ATTRS")) { AttributeDeclaration var11 = new AttributeDeclaration(var6); this.insertDeclaration(var11, (BaseDeclaration)null); var7 = var11; } if (var7 != null) { var7 = (AttributeGroupMember)((AttributeDeclaration)var7).clone(); if (this.isSupported("GESTALT_GLOBAL_ATTRS") && ((AttributeDeclaration)var7).isGlobal()) { ((AttributeDeclaration)var7).setReference(true); } this.insertDeclaration((AttributeDeclaration)((AttributeDeclaration)var7), (BaseDeclaration)null, (AttributeDeclaration.Owner)var1); } } if (var7 == null) { var7 = new AttributeDeclaration(var1, var6); this.insertDeclaration((AttributeDeclaration)var7, (BaseDeclaration)null); } var4.addElement(var7); } Vector var9 = var1.updateAttributes(var4); FilteredEnumerator var10 = new FilteredEnumerator(var9.elements(), Class.forName("com.extensibility.xml.AttributeDeclaration")); Object var12 = null; while(var10.hasMoreElements()) { AttributeDeclaration var13 = (AttributeDeclaration)var10.nextElement(); this.schema.removeDeclaration(var13); this.fireRemoveEvent(var13); } if (var1 instanceof InternalPEDeclaration) { ((InternalPEDeclaration)var1).updateValue(); } } public void updateContentModel(ContentModelOwner var1, String var2) throws ParserException { var2 = DTDUtilities.convertPEReferences(var2, true).trim(); boolean var3 = var2.equals("EMPTY") || var2.equals("ANY"); this.schema.updateContentModel(var1, var2, var3); } public URI getNamespace() { return this.schema.getNamespace(); } public void setNamespace(URI var1) { URI var2 = this.schema.getNamespace(); this.schema.setNamespace(var1); if (var1 == null && var2 != null || var1 != null && !var1.equals(var2)) { this.fireChangedEvent((BaseDeclaration)null); } } public String getSchemaPrefix() { return this.schema.getSchemaPrefix(); } public void setSchemaPrefix(String var1) { String var2 = this.schema.getSchemaPrefix(); this.schema.setSchemaPrefix(var1); if (var1 == null && var2 != null || var1 != null && !var1.equals(var2)) { this.fireChangedEvent((BaseDeclaration)null); } } public void updatePreferences(URI var1, DocumentPreferences var2) { ProcessingInstruction var3 = this.getInstruction(var1, "XA_DOC_PREFS"); if (var3 == null) { var3 = new ProcessingInstruction("XA_DOC_PREFS", ((BaseInfo)var2).toSource()); ((BaseDeclaration)var3).setURI(var1); this.insertDeclaration(var3, (BaseDeclaration)null); } else { var3.setInstruction(((BaseInfo)var2).toSource()); } this.touch(var1); } protected void updateURI(URI var1, URI var2) { this.schema.updateURI(var1, var2); this.moduleRegistry.updateURI(var1, var2); if (var1.equals(this.focusedURI)) { this.focusedURI = var2; } } public void write(Writer var1) throws IOException { this.write(var1, ((BaseDocument)this).getURI()); } public void write(Writer var1, URI var2) throws IOException { this.schema.write(var1, var2); } public boolean doUncheckout(URI var1) { return false; } public boolean doCheckout(URI var1) { URIVersionedAccess var2 = (URIVersionedAccess)var1.getInterface(Class.forName("com.extensibility.plugin.api.URIVersionedAccess")); boolean var3 = var2.checkoutItem() == 0; if (var3) { this.setEditable(var1, true); } return var3; } public boolean doCheckin(URI var1) { return this.save((ActionEvent)null, var1); } protected void cleanupUnsavedChanges() { Vector var1 = this.moduleRegistry.getAllURIs(); for(int var2 = 0; var2 < var1.size(); ++var2) { URI var3 = (URI)var1.elementAt(var2); URIVersionedAccess var4 = (URIVersionedAccess)var3.getInterface(Class.forName("com.extensibility.plugin.api.URIVersionedAccess")); if (var4 != null) { var4.uncheckoutItem(); } } } }